package com.dragon.modules.yuegou.service.product;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dragon.common.web.PageRequest;
import com.dragon.modules.yuegou.entity.product.GrouponJoinEntity;
import com.dragon.modules.yuegou.model.order.Order;
import com.dragon.modules.yuegou.model.product.GrouponInfo;
import com.dragon.modules.yuegou.model.product.GrouponJoin;

/**
 * 参团表 服务接口
 *
 * @author pbuilder generated
 * @date 2019-09-17 14:58:07
 * @version 2.0
 */
public interface GrouponJoinService extends IService<GrouponJoinEntity> {
    /**
     * 参团
     * 　1.新增参团记录
     * 2.创建订单
     *
     * @param grouponId
     * @param memberId
     * @return
     */
    Order joinGroupon(String grouponId, String memberId);

    /**
     * 支付回调
     *
     * @param orderNo
     */
    void payCallBack(String orderNo);

    /**
     * 统计参与人数
     *
     * @param grouponId
     * @return
     */
    int countJoinNum(String grouponId);

    /**
     * 统计支付过的人数
     *
     * @param grouponId
     * @return
     */
    int countPaidNum(String grouponId);

    /**
     * 是否支付
     *
     * @param orderNo
     * @return
     */
    boolean isPaid(String orderNo);

    /**
     * 是否已经参加该商品的拼团
     * @param grouponInfoId
     * @return
     */
    boolean isJoin(String grouponInfoId);

    /**
     * 个人中心-我的拼团列表
     * @param pageInfo
     * @param busdId
     * @return
     */
    IPage<GrouponJoin> myGrouponList(PageRequest pageInfo, String busdId);

    /**
     * 退款
     * @param orderNo
     * @return
     */
    boolean refund(String orderNo);


    /**
     * 我的拼团详情
     * @param grouponJoinId
     * @return
     */
    GrouponInfo grouponDetails(String grouponJoinId);
}